This operator substitutes selected items in Y with new values or applies a function to modify selected items in Y.
The right operand g identifies which items of array Y are to be substituted or modified. It is either:
The left operand f is either:
The result R is the same as Y but with the items specified by g substituted or modified by f.
Replace the 2nd and 4th items of ⍳5:
(10 20@2 4)⍳5 ⍝ 1Note that the expression does not require parentheses because without them, the array 2 4 binds anyway to the @ operator rather than to the ⍳ function.
1 10 3 20 5
10 20@2 4⍳5 1 10 3 20 5
Replace the 2nd and 4th items of nested vector with ⍬:
(⊂⍬)@2 4 ⍳¨⍳5 ┌─┬┬─────┬┬─────────┐ │1││1 2 3││1 2 3 4 5│ └─┴┴─────┴┴─────────┘
Replace the 2nd and 4th rows (major cells) of a matrix:
(2 3⍴10 20)(@2 4)4 3⍴⍳12 1 2 3 10 20 10 7 8 9 20 10 20
Replace first and last elements with 0 using Choose Indexing:
(0@(1 1)(4 3))4 3⍴⍳12 0 2 3 4 5 6 7 8 9 10 11 0
Replace nested items using Reach Indexing:
G ┌───────┬───────┬───────┐ │┌───┬─┐│┌───┬─┐│┌───┬─┐│ ││ABC│1│││DEF│2│││GHI│3││ │└───┴─┘│└───┴─┘│└───┴─┘│ ├───────┼───────┼───────┤ │┌───┬─┐│┌───┬─┐│┌───┬─┐│ ││JKL│4│││MNO│5│││PQR│6││ │└───┴─┘│└───┴─┘│└───┴─┘│ └───────┴───────┴───────┘ G[((1 2)1)((2 3)2)] ┌───┬─┐ │DEF│6│ └───┴─┘ ('' '*' @((1 2)1)((2 3)2)) G ┌───────┬───────┬───────┐ │┌───┬─┐│┌┬─┐ │┌───┬─┐│ ││ABC│1││││2│ ││GHI│3││ │└───┴─┘│└┴─┘ │└───┴─┘│ ├───────┼───────┼───────┤ │┌───┬─┐│┌───┬─┐│┌───┬─┐│ ││JKL│4│││MNO│5│││PQR│*││ │└───┴─┘│└───┴─┘│└───┴─┘│ └───────┴───────┴───────┘
Replace the 2nd and 4th items of ⍳5 with their reciprocals:
÷@2 4 ⍳5 1 0.5 3 0.25 5
Replace the 2nd and 4th items of ⍳5 with their reversal:
⌽@2 4 ⍳5 1 4 3 2 5
Multiply the 2nd and 4th items of ⍳5 by 10:
10×@2 4⍳5 1 20 3 40 5
Replace the 2nd and 4th items by their totals:
+/¨@2 4 ⍳¨⍳5 ┌─┬─┬─────┬──┬─────────┐ │1│3│1 2 3│10│1 2 3 4 5│ └─┴─┴─────┴──┴─────────┘
Replace the 2nd and 4th rows (major cells) of a matrix with their accumulatives:
(+\@2 4)4 3⍴⍳12 1 2 3 4 9 15 7 8 9 10 21 33
Replace odd elements with 0:
0@(2∘|)⍳5 0 2 0 4 0
Replace multiples of 3 (note that masked items are substituted in ravel order):
'abcde'@{0=3|⍵} 4 4⍴⍳16 1 2 a 4 5 b 7 8 c 10 11 d 13 14 e 16 'abcde'@(0=3|⊢) 4 4⍴⍳16 ⍝ or using a train 1 2 a 4 5 b 7 8 c 10 11 d 13 14 e 16
Replace odd elements with their reciprocals:
÷@(2∘|)⍳5 1 2 0.3333333333 4 0.2
Replace odd items of ⍳5 with themselves reversed:
⌽@(2∘|)⍳5 5 2 3 4 1